#include"BlockQueue.hpp"

//消费者线程执行的函数
void* Consumer(void* args)
{
    BlockQueue<int>* bq = static_cast<BlockQueue<int>*>(args);
    while(true)
    {
        //消费共享内存的数据
        int data = bq->pop();
    } 
}

void* Productor(void* args)
{
    BlockQueue<int>* bq = static_cast<BlockQueue<int>*>(args);
    while(true)
    {
        //生产数据加入到共享内存
        int data = 10;
        bq->push(data);
    }
}


int main()
{
    BlockQueue<int>* bq = new BlockQueue<int>(); //创建阻塞队列
    pthread_t c,p;
    pthread_create(&c,nullptr,Consumer,bq);
    pthread_create(&c,nullptr,Productor,bq);

    pthread_join(c,nullptr);
    pthread_join(p,nullptr);
    delete bq;
    return 0;
}
